import axios from 'axios'
import store from '../store'
import router from '../router'
export const baseURL = 'http://big-event-vue-api-t.itheima.net'
const myAxios = axios.create({
  baseURL
})
const white = ['/api/reg', '/api/login']
myAxios.interceptors.request.use(function (config) {
  if (!white.includes(config.url)) {
    config.headers.Authorization = store.state.token
  }
  return config
}, function (error) {
  return Promise.reject(error)
})
myAxios.interceptors.response.use(function (response) {
  /* 状态响应码为2xx 时触发成功的回调 形参中的response是"成功的结果" */
  return response
}, function (error) {
  /* 响应状态码不是2xx时触发的失败的回调，形参中的err是失败的结果 */
  if (error.response.status === 401) {
    /* 无效的token */
    /* 把vuex中的token重置为空 并跳转到登录页面 */
    store.commit('updateToken', '')
    router.push('/login')
  }
  return Promise.reject(error)
})

export default myAxios
